#include <iostream>
using namespace std;
// 友元函数的作用是为了能在类外访问类的私有成员
// 友元函数可以是普通函数，也可以是类的成员函数

class Demo
{
    public:
        Demo(){};
        Demo(int i,int j):i(i),j(j)
        {}
    friend void friend_fun(const Demo & );

    private:
        int i;
        int j;
};


void friend_fun(const Demo &d)
{
    // 友元函数里可以直接实例化对象（很少使用，因为函数结束了对象也没了）
    Demo d2(11,22);

    // 友元函数里可以直接访问对象的私有成员
    cout<<d.i<<" "<<d.j<<endl;
    cout<<d2.i<<" "<<d2.j<<endl;
}

int main()
{
    Demo d(10,20);
    friend_fun(d);
    return 0;
}